﻿/*
 * Ficheiro Consulta.cs
 * Aluno: João Guerreiro
 * 13730
 */
using System;
using System.Data.SQLite;
using System.Collections.Generic;

namespace readExcel
{
	/// <summary>
	/// Classe que efectua as consultas a base de dados e cria os graficos
	/// </summary>
	public class Consulta
	{
		SQLiteConnection sqConnection;
		
		List<long> anos = new List<long>();
		List<decimal> valores = new List<decimal>();
		
		//construtor de uma consulta
		public Consulta ()
		{
			sqConnection = new SQLiteConnection("Data Source=Dados_IPC.db;Version=3;");
			sqConnection.Open();
		}

		/// <summary>
		/// método que efectua a consulta a base de dados
		/// </summary>
		/// <param name="ano1"></param>
		/// <param name="ano2"></param>
		/// <param name="tipo"></param>
		public void ReadMyData(string ano1, string ano2, string tipo)
		{
			
			//query
			string mySelectQuery = "SELECT ano,"+ tipo +" FROM IPC_Portugal WHERE ano " +
				"BETWEEN "+ano1 +" AND "+ ano2;
			
			SQLiteCommand sqCommand = new SQLiteCommand(mySelectQuery,sqConnection);
			SQLiteDataReader sqReader = sqCommand.ExecuteReader();
			
			//guarda valores a medida que le o resultado
			while (sqReader.Read())
			{
				anos.Add(sqReader.GetInt64(0));
				valores.Add(sqReader.GetDecimal(1));
			}
			sqReader.Close();	
		}
		
		/// <summary>
		/// limpa os valores guardados da query mais recente
		/// </summary>
		public void limpaValores(){
			anos.Clear();
			valores.Clear();
			
		}
		
		
		/// <summary>
		/// devolve os anos da query mais recente
		/// </summary>
		/// <returns></returns>
		public List<long> devolveAnos()
		{
			return anos;
		}
		
		
		/// <summary>
		/// devolve os valores da query mais recente
		/// </summary>
		/// <returns></returns>
		public List<decimal> devolveValores()
		{
			return valores;
		}
		
		/// <summary>
		/// abre conexao a base de dados
		/// </summary>
		public void abreConexao()
		{
			sqConnection.Open();
		}
		
		/// <summary>
		/// termina conexao a base de dados
		/// </summary>
		public void terminaConexao()
		{
			sqConnection.Close();
		}
	}
}
